package de.tum.in.elitese.wahlsys.persister.persistence_objects;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import de.tum.in.elitese.wahlsys.persister.PersistenceObject;

/**
 * see Table WAHLBEZIRK
 * 
 * @author Christoph Frenzel
 * 
 */
public class Wahlbezirk extends PersistenceObject {
	private static final List<String> FIELD_NAMES = Collections.unmodifiableList(Arrays.asList(new String[] { "NAME", "POSTFACH", "POSTLEITZAHL", "STRASSEHAUSNUMMER", "ORT", "WAHLBERECHTIGTE",
			"WAHLKREIS", "BUNDESLAND" }));

	private static final String TABLE_NAME = "WAHLBEZIRK";

	private String fName;

	private String fOrt;

	private Integer fPostfach;

	private Integer fPostleitzahl;

	private Integer fStrasseHausnummer;

	private Integer fWahlberechtigte = 0;

	private Wahlkreis fWahlkreis;

	public String getName() {
		return fName;
	}

	public String getOrt() {
		return fOrt;
	}

	@Override
	public List<String> getPersistanceStrings() {
		List<Object> values = new ArrayList<Object>(7);
		values.add(getName());
		values.add(getPostfach());
		values.add(getPostleitzahl());
		values.add(getStrasseHausnummer());
		values.add(getOrt());
		values.add(getWahlberechtigte());
		values.add(getWahlkreis().getNummer());
		values.add(getWahlkreis().getBundesland().getName());

		List<String> result = new ArrayList<String>(1);
		result.add(createInsertString(TABLE_NAME, FIELD_NAMES, Collections.unmodifiableList(values)));
		return result;
	}

	public Integer getPostfach() {
		return fPostfach;
	}

	public Integer getPostleitzahl() {
		return fPostleitzahl;
	}

	public Integer getStrasseHausnummer() {
		return fStrasseHausnummer;
	}

	public Integer getWahlberechtigte() {
		return fWahlberechtigte;
	}

	public Wahlkreis getWahlkreis() {
		return fWahlkreis;
	}

	public void setName(String name) {
		fName = name;
	}

	public void setOrt(String ort) {
		fOrt = ort;
	}

	public void setPostfach(Integer postfach) {
		fPostfach = postfach;
	}

	public void setPostleitzahl(Integer postleitzahl) {
		fPostleitzahl = postleitzahl;
	}

	public void setStrasseHausnummer(Integer strasseHausnummer) {
		fStrasseHausnummer = strasseHausnummer;
	}

	public void setWahlberechtigte(Integer wahlberechtigte) {
		fWahlberechtigte = wahlberechtigte;
	}

	public void setWahlkreis(Wahlkreis wahlkreis) {
		fWahlkreis = wahlkreis;
	}
}
